800484D0:	J_text trigger!  set to 1 to activate J_text
800484D4:	text string recall table, containing pointers to L_X strings
8008C640:	start of loaded text index, containing pointers to loaded stringtables

+-+-+-+

7F0C15E0:	0xF6110	returns the text bank number for a specific stage#
ADDIU	T6,A0,FFF7
SLTIU	AT,T6,002E
BEQ	AT,R0,7F0C16DC
SLL	T6,T6,0x2
LUI	AT,8006
ADDU	AT,AT,T6
LW	T6,BB60 (AT)
JR	T6
NOP
--list of stage text offset values...
	each contains the JR	RA, except the default.  That throws an endless loop
extends, at least, to 7F0C16E4
7F0C16E4:
JR	RA
OR	V0,V1,R0

+-+-+-+

7F0C16EC:	Calling the global banks at startup
ADDIU	SP,SP,FFD8
SW	S2,0020 (SP)
LUI	S2,8005
ADDIU	S2,S2,84D0	
LW	T0,0000 (S2)	T0=L_J flag?
SW	RA,0024 (SP)
SW	S1,001C (SP)
BEQ	T0,R0,7F0C17F0
SW	S0,0018 (SP)
//7F0C1710:	J_text only?
ADDIU	A0,R0,2E80
JAL	70009720
ADDIU	A1,R0,0006
LUI	AT,8009
SW	V0,C6F4 (AT)
ADDIU	A0,R0,0100
JAL	70009720
ADDIU	A1,R0,0006
LUI	A0,8009
ADDIU	A0,A0,C6F8
SW	V0,0000 (A0)
OR	V1,R0,R0
ADDIU	A1,R0,00F8
//7F0C1744:
LW	T6,0000 (A0)
ADDU	V0,T6,V1
LBU	T7,0000 (V0)
ANDI	T8,T7,FF3F
SB	T8,0000 (V0)
LW	T9,0000 (A0)
ADDU	V0,T9,V1
LHU	T2,0000 (V0)
ORI	T3,T2,3FFF
SH	T3,0000 (V0)
LW	T4,0000 (A0)
ADDU	V0,T4,V1
LBU	T5,0002 (V0)
ANDI	T6,T5,FF3F
SB	T6,0002 (V0)
LW	T7,0000 (A0)
ADDU	V0,T7,V1
LHU	T9,0002 (V0)
ORI	T1,T9,3FFF
SH	T1,0002 (V0)
LW	T2,0000 (A0)
ADDU	V0,T2,V1
LBU	T3,0004 (V0)
ANDI	T4,T3,FF3F
SB	T4,0004 (V0)
LW	T5,0000 (A0)
ADDU	V0,T5,V1
LHU	T7,0004 (V0)
ORI	T8,T7,3FFF
SH	T8,0004 (V0)
LW	T9,0000 (A0)
ADDU	V0,T9,V1
LBU	T1,0006 (V0)
ANDI	T2,T1,FF3F
SB	T2,0006 (V0)
LW	T3,0000 (A0)
ADDU	V0,T3,V1
LHU	T5,0006 (V0)
ADDIU	V1,V1,0008
ORI	T6,T5,3FFF
BNE	V1,A1,7F0C1744
SH	T6,0006 (V0)
LW	T0,0000 (S2)	J_text flag
//7F0C17F0:
LUI	AT,8009
LUI	V0,8009
LUI	V1,8009
ADDIU	V1,V1,C6F4
ADDIU	V0,V0,C644	V0=8008C644: entries for text pointers
SW	R0,C640 (AT)
//7F0C1808:	loopus thy name is initialize
ADDIU	V0,V0,0010
SW	R0,FFF4 (V0)
SW	R0,FFF8 (V0)
SW	R0,FFFC (V0)
BNE	V0,V1,7F0C1808	initializes entries 04xx to B0xx
SW	R0,FFF0 (V0)
//7F0C1820:	load LgunX
LUI	S0,8005
ADDIU	S0,S0,84D4	S0=800484D4: start of L_X lookup names
SLL	T7,T0,0x2	T7=4 if J_text is in use
ADDU	T8,S0,T7
LW	A0,0130 (T8)	literal offset in table to p->LgunE
ADDIU	A1,R0,0001
ADDIU	A2,R0,0100
JAL	7F0BCD04	load to permatext bank
ADDIU	A3,R0,0006	(memory allocation segment 6 - permatext?)
//7F0C1844:	load LtitleX
LW	T9,0000 (S2)
LUI	S1,8009
ADDIU	S1,S1,C640
SLL	T1,T9,0x2
ADDU	T2,S0,T1
SW	V0,0098 (S1)
LW	A0,0138 (T2)
ADDIU	A1,R0,0001
ADDIU	A2,R0,0100
JAL	7F0BCD04
ADDIU	A3,R0,0006
//7F0C1870:	load LmpmenuX
LW	T3,0000 (S2)
SW	V0,009C (S1)
ADDIU	A1,R0,0001
SLL	T4,T3,0x2
ADDU	T5,S0,T4
LW	A0,0140 (T5)
ADDIU	A2,R0,0100
JAL	7F0BCD04
ADDIU	A3,R0,0006
//7F0C1894:	load LpropobjX
LW	T6,0000 (S2)
SW	V0,00A0 (S1)
ADDIU	A1,R0,0001
SLL	T7,T6,0x2
ADDU	T8,S0,T7
LW	A0,0148 (T8)
ADDIU	A2,R0,0100
JAL	7F0BCD04
ADDIU	A3,R0,0006
//7F0C18B8:	load LmpweaponsX
LW	T9,0000 (S2)
SW	V0,00A4 (S1)
ADDIU	A1,R0,0001
SLL	T1,T9,0x2
ADDU	T2,S0,T1
LW	A0,0150 (T2)
ADDIU	A2,R0,0100
JAL	7F0BCD04
ADDIU	A3,R0,0006
//7F0C18DC:	load LoptionsX
LW	T3,0000 (S2)
SW	V0,00A8 (S1)
ADDIU	A1,R0,0001
SLL	T4,T3,0x2
ADDU	T5,S0,T4
LW	A0,0158 (T5)
ADDIU	A2,R0,0100
JAL	7F0BCD04
ADDIU	A3,R0,0006
//7F0C1900:	load LmiscX
LW	T6,0000 (S2)
SW	V0,00AC (S1)
ADDIU	A1,R0,0001	A1=1; probably the 1=permabit
SLL	T7,T6,0x2	T6=0, so probably the 1=use L_J flag
ADDU	T8,S0,T7
LW	A0,0160 (T8)	A0=pointer to L_E string ;T8=800484D4: p->txt string recall table
ADDIU	A2,R0,0100
JAL	7F0BCD04	returns V0=pointer to stringtable
ADDIU	A3,R0,0006
//7F0C1924:	return
LW	RA,0024 (SP)
SW	V0,00B0 (S1)	save pointer to stringtable entry; S1=8008C640: start of index
LW	S1,001C (SP)
LW	S0,0018 (SP)
LW	S2,0020 (SP)
JR	RA
ADDIU	SP,SP,0028

+-+

7F0C1940:	???	looks like it would interfere with tables B8xx+
LUI	T6,8005
LW	T6,84D0 (T6)	T6=1 if jtext in use?
OR	V1,R0,R0
ADDIU	A2,R0,00F8
BEQ	T6,R0,7F0C1A28	if 0, quit
LUI	A1,8009
ADDIU	A1,A1,C6F8	A1=8008C6F8	this is after text entry 'B4xx'...
LW	T7,0000 (A1)
//7F0C1960:
ADDU	V0,T7,V1
LHU	A0,0000 (V0)
SRL	T8,A0,0xE
BEQL	T8,R0,7F0C1998
LHU	A0,0002 (V0)
//7F0C1974:
LBU	T2,0000 (V0)
ADDIU	T9,T8,FFFF
...
...
//7F0C1A28:	quit
JR	RA
NOP


+-+

7F0C1D08:	loads stringtable for stage-specific text
LUI	T8,8005
LW	T8,84D0 (T8)
ADDIU	SP,SP,FFE8
SLL	T7,A0,0x3
SW	A0,0018 (SP)
SLL	T9,T8,0x2
ADDU	T0,T7,T9
LUI	A0,8005
SW	RA,0014 (SP)
ADDU	A0,A0,T0
LW	A0,84D4 (A0)
ADDIU	A1,R0,0001
ADDIU	A2,R0,0100
JAL	7F0BCD04
ADDIU	A3,R0,0004
LW	T1,0018 (SP)
LW	RA,0014 (SP)
LUI	AT,8009
SLL	T2,T1,0x2
ADDU	AT,AT,T2
SW	V0,C640 (AT)
JR	RA
ADDIU	SP,SP,0018

+-+

7F0C1D64:	???	loads stringtables for briefings/objectives?
LUI	T8,8005
LW	T8,84D0 (T8)	T8=1 if J_text?  just a guess...
ADDIU	SP,SP,FFE8
SLL	T7,A0,0x3	T7=text group *8, offsetting in lookup table; A0 provided
SW	A0,0018 (SP)	save original text group number
SLL	T9,T8,0x2
OR	A3,A2,R0
ADDU	T0,T7,T9	T0=offset to L_X pointer
LUI	A0,8005
OR	A2,A1,R0
SW	RA,0014 (SP)
SW	A1,001C (SP)
ADDU	A0,A0,T0
LW	A0,84D4 (A0)	A0=p-> L_X string
JAL	7F0BCD40	jumps to 7F0BCFE0 instead of 7F0BCE0C...
ADDIU	A1,R0,0001
LW	T1,0018 (SP)
LW	RA,0014 (SP)
LUI	AT,8009
SLL	T2,T1,0x2
ADDU	AT,AT,T2
SW	V0,C640 (AT)	store pointer to stringtable in appropriate slot
JR	RA
ADDIU	SP,SP,0018

+-+

7F0C1DC4:	blank stringtable entry A0
SLL	T6,A0,0x2
LUI	AT,8009
ADDU	AT,AT,T6
JR	RA
SW	R0,C640 (AT)

+-+

7F0C1DD8:	return pointer to text given by txtID	(assume stringtable loaded)
SRA	T6,A0,0xA	reduce 2-byte txtID -> FC00
SLL	T7,T6,0x2	convert back to offset in table
LUI	V0,8009
ADDU	V0,V0,T7
LW	V0,C640 (V0)	V0=pointer to stringtable
ANDI	T8,A0,03FF	T8=text # in stringtable
SLL	T9,T8,0x2	T9=...converted to offset in index
ADDU	T0,V0,T9
LW	V1,0000 (T0)	V1=offset to text in the stringtable
OR	A0,R0,R0
BEQ	V1,R0,7F0C1E14
NOP
ADDU	A0,V1,V0	A0=offset to text + stringtable address...
JR	RA
OR	V0,A0,R0	V0=...creating final pointer to text
//7F0C1E14:	bad entry = no pointer
JR	RA
OR	V0,A0,R0

+-+-+-+
7F0BCD04:	returns V0=pointer to loaded stringtable
ADDIU	SP,SP,FFE8
SW	RA,0014 (SP)
SW	A1,001C (SP)	save 1
SW	A2,0020 (SP)	save 0x100
JAL	7F0BD254	returns V0=first long value for matching entry in ROM table
SW	A3,0024 (SP)	save 6
OR	A0,V0,R0	A0=ROM index #
LW	A1,001C (SP)
LW	A2,0020 (SP)
JAL	7F0BCE0C	loads binary and returns V0=pointer to data
		note: looks up filesize from list in 800888B0
LBU	A3,0027 (SP)
LW	RA,0014 (SP)
ADDIU	SP,SP,0018
JR	RA
NOP

+-+



+-+-+-+

7F009760:	???	calls the J_bit though
LUI	T6,8005
LW	T6,84D0 (T6)
ADDIU	SP,SP,FFC8
SW	RA,0024 (SP)
BEQ	T6,R0,7F0097F8
LW	T5,0048 (SP)
//7F009778:
...
...
//7F0097F8:
LW	T4,004C (SP)
LW	T6,0050 (SP)
LW	T7,0054 (SP)
LW	T8,0058 (SP)
LW	T9,005C (SP)
LW	T0,0060 (SP)
SW	T5,0010 (SP)
SW	T4,0014 (SP)
SW	T6,0018 (SP)
SW	T7,001C (SP)
SW	T8,0020 (SP)
SW	T9,0024 (SP)
JAL	7F0ADABC
SW	T0,0028 (SP)
OR	A0,V0,R0
LW	RA,0034 (SP)
//7F009838:
ADDIU	SP,SP,0038
OR	V0,A0,R0
JR	RA
NOP

+-+
7F0ADABC:	???	called above...
...
//7F0ADB30:
LUI	T3,8005
LW	T3,84D0 (T3)
...
//7F0ADDA4:
JR	RA
ADDIU	SP,SP,00A8

+-+
7F0AE98C:	???
...
//7F0AE9C4:
LUI	T8,8005
LW	T8,84D0 (T8)
...
//7F0AEB5C:
JR	RA
ADDIU	SP,SP,0018

+-+-+-+
7F0BFB20:	unload stage stuff!
...
//7F0BFB6C:	unload stage-specific text
JAL	7F0C1DC4	blanks text bank A0
OR	A0,V0,R0

+-+-+-+
//700094D0
LW	T2,84D0 (T2)	J_text flag
